//
// Created by Hello on 2024/2/4.
//
#include <string.h>
#include <ctype.h>

typedef int bool;
#define true 1
#define false 0
// 125 验证回文串
// 给定已给字符串，只看其中的数字和字母，忽略大小写，判断这个字符串是否为回文串？
// 输入: s = "A man, a plan, a canal: Panama"
// 输出：true
// 解释："amanaplanacanalpanama" 是回文串。
// https://leetcode.cn/problems/valid-palindrome/description/
bool isPalindrome(char* s) {
    size_t n = strlen(s);
    int i = 0, j = n - 1;
    while(i < j) {
        if(!isalnum(s[i])){
            i++;
            continue;
        }
        if(!isalnum(s[j])){
            j--;
            continue;
        }
        if(tolower(s[i]) != tolower(s[j]))
            return false;
        i++;j--;
    }
    return true;
}
